#include <stdio.h>

void swap(int *x, int *y)
{
    printf("swap before x = %p %d\n", x, *x);
    printf("swap before y = %p %d\n", y, *y);

    int temp = *x;
    *x = *y;
    *y = temp;
    // 修改传递过来的指针（main函数栈帧中的变量）指向的目标元素的值

    printf("swap before x = %p %d\n", x, *x);
    printf("swap before y = %p %d\n", y, *y);
    //
}
int main()
{
    int a = 10;
    int b = 20;
    printf("a = %d %p\n", a, &a);
    printf("b = %d %p\n", b, &b);

    swap(&a, &b);
    // 传递 main 函数中的变量的地址

    printf("a = %d %p\n", a, &a);
    printf("b = %d %p\n", b, &b);
    // 交换成功

    return 0;
}

// 如果在B函数中 要修改A函数的变量，则需要使用指针作为参数